The return value of st_theme_node_lookup_length() is scaled according
to the scale factor. IconGrid.ICON_SIZE is not. However, when BaseIcon
tries to fetch the CSS value for "icon-size" (which returns a scaled
value), it uses it as-is, mixing the two coordinate systems.
Use a single coordinate system (unscaled sizes) in IconGrid.BaseIcon.
https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1175
if (this._setSizeManually) {
size = this.iconSize;
} else {
+ const { scaleFactor } =
+ St.ThemeContext.get_for_stage(global.stage);
+
let [found, len] = node.lookup_length('icon-size', false);
- size = found ? len : ICON_SIZE;
+ size = found ? len / scaleFactor : ICON_SIZE;
}
if (this.iconSize == size && this._iconBin.child)